Enterprise Resource Planning (“ERP”) software is a type of software used by many companies to plan and manage various business functions, such as budgeting, accounting, human resources, inventory management, customer relationship management, and so forth. Typically a customer or a third-party consultant will customize an ERP application to satisfy that customer's specific business requirements. To customize an ERP application, the customer or consultant may develop custom code that uses functionality exposed by the ERP application. Such customizations may improve the usability of the ERP applications or provide additional functionality.
A typical ERP software environment includes server-side components and client-side components. The server-side components typically include databases storing company information (e.g., inventory, customer data, purchase order reports, invoicing reports) along with business logic for interacting with the data. The client-side components typically include a generic client-side runtime configured to interact with the server-side business logic. For example, company employees distributed throughout the company's offices may each run the generic client-side runtime that interacts with server-side business logic to monitor inventory, conduct sales transactions, process orders, complete shipping requests and so on through a number of forms, pages, tables, codeunits, etc., provided by the ERP software. The generic client-side runtime includes logic for interacting with a user regardless of the configuration of the computer on which the client is running. The characteristics of these configurations, or “display targets,” include, among other things, the operating system and runtime environment (e.g., MICROSOFT WINDOWS VISTA, MICROSOFT WINDOWS XP, MICROSOFT WINDOWS MOBILE, MICROSOFT INTERNET INFORMATION SERVER), rendering and display methods (e.g., MICROSOFT WINDOWS GUI, MICROSOFT SILVERLIGHT, mobile phone, 14″ CRT monitor, 22″ LCD screen), user input methods (e.g., keyboard, mouse, scanner, voice, gesture), and network connectivity (e.g., persistent, high-speed, dial-up). Due to the number of characteristics, the number of display targets can become quite overwhelming. Accordingly, the generic client-side runtime, which includes logic for each display target, can become cumbersome.